package com.jic.interaction.loginStatus.controller;


import com.alibaba.fastjson.JSON;
import com.jic.common.base.vo.RestResult;
import com.jic.interaction.cardCouponPlatform.common.utils.BeanUtils;
import com.jic.interaction.loginStatus.model.LoginStatusDTO;
import com.jic.interaction.loginStatus.model.LoginStatusRequest;
import com.jic.interaction.loginStatus.service.LoginStatusService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@RequestMapping("/pmbank-mbac")
@Api(tags = "【小程序跳转H5登录态校验】")
@Slf4j
public class LoginStatusController {

    @Resource
    LoginStatusService loginStatusService;
    /**
     * @Author taozhouchuan
     * @Description  小程序跳转H5登录态校验
     * @param loginStatusRequest
     * @return 订单编号
     * @throws Exception 系统异常
     * @date: 2020-11-19 03:26:30
     */
    @ApiOperation(value = "登录态校验-OAuth鉴权")
    @PostMapping("/OAuth")
    public RestResult<Object> verifyLoginStatus(@RequestBody LoginStatusRequest loginStatusRequest) throws Exception {
        LoginStatusDTO loginStatusDTO = new LoginStatusDTO();
        BeanUtils.Copy(loginStatusRequest, loginStatusDTO);
        /*type	是	string	E卡：28，21:小程序登录（不判断开户），3有折
        code	是	string	微信app客户端code
        appId	是	string	小程序appid
        webankAppId	是	string	我们行内分配的webankAppid
        adm	否	string
        url	是	string	重定向跳转地址
        hash	否	string	urlHash
        extInfo	否	string	扩展字段 json
        encryptedData	是	string	getuserinfo返回的加密数据 TYPE=21必输
        iv	是	string	加密向量 TYPE=21必输
        opretationType	是	string	加密向量 TYPE=28
        服务大厅鉴权使用 00-公众号鉴权（默认），01-小程序鉴权
        */
        loginStatusDTO.setType("22");loginStatusDTO.setCode("");
        loginStatusDTO.setAppId("wx610e969efd7826b9");loginStatusDTO.setWebankAppId("00000002");
        loginStatusDTO.setUrl("https://personal.test.webank.com/s/hj/mall/index.html#/weInstallment/WeInstallmentBillListScene");
        loginStatusDTO.setIv("21");loginStatusDTO.setOpretationType("01");


        log.debug("【小程序跳转H5登录态校验】，入参实体类 = {}", JSON.toJSONString(loginStatusDTO));
        RestResult<Object> restResult = loginStatusService.verifyLoginStatus(loginStatusDTO);
        log.debug("【小程序跳转H5登录态校验】，出参实体类 = {}", JSON.toJSONString(restResult));

        return restResult;
    }


}
